1 03-22-24 (Friday)
Lord, we pray for those making international and national decisions about the ‘Information Super-Highway’;
that the whole range of considerations - political, economic, personal, sectional, communal - may be properly taken into account.
Lord, we pray for those setting up and administering national data-banks; we give thanks for the good they can do in co-ordinating information. We remember those who misuse the information they hold.
Lord, we pray for those involved in Research and Development in computers; we remember the power and responsibility they have for making changes in our world and our lives. We remember those who have lost their jobs as a result of new technology.
Lord, we pray for those who have boring keyboard jobs, those who suffer from Repetitive Strain Injury, or eyestrain. We pray for willingness to deal with the causes of such problems.
Lord, we pray for those in small computing businesses; the difficulties they face in chasing creditors; the stress on them, the risks they have to take - perhaps even with their own homes.
Lord, we pray for those who write computer games: some which are used to do much good at school, others to encourage people to gamble, some which are used just to make money. We pray for those who are addicted to computer and arcade games, and for their families; and for those who are anxious about the violence of some computer games.
Lord, we pray for those frightened of computers and other sorts of new technology; those who feel they cannot master using them; those who feel old or who lose their confidence in the face of change and new things.
Lord, we pray that technology may be the servant, not the controller of our lives.
(From ‘Work in Worship’, Peterborough Diocese People and Work Programme)
2 Concurrent Version Control Systems
2.1 Sometimes we need to keep a history of changes
2.2 Sometimes we need to work with others
- share a collection of files with your team or other external contributors
- merge changes done by others
- ensure that nothing is accidentally overwritten
- know who you must blame when something is broken…
2.3 Sometimes we need to branch our project
- You can have:
- a main branch
- a maintainance branch (to provide bugfixes in older releases)
- a development branch (to make disruptive changes)
- a release branch (to freeze code before a new release)
- Thus, you may need something to:
- handle multiple branches concurrently
- merge changes from a branch into another one
2.4 Git and Github
- Git is a version control software developed in 2005 by Linus Torvalds (who also created Linux!)
- Open source!
- The files are stored in a repository, which you can simply think of as a directory containing files (or other directories) related to a single “project”.
- Git takes “snapshots” of your files each time you commit changes
- You can use either by command-line or by GUI (see alternatives here)
- Github is a web based Git repository hosting service
- it is also a social network where people can collaborate with each other in projects
- for example, it is also possible to give feedback to the developer by creating a specific “issue” that can be used to report for example a bug that was found in the software, or suggest new features
- publicly available repositories can also be downloaded to your own local computer, where you can start modifying the codes for your own purpose (which is called “forking”).
- however, you should always check and follow the license terms of the project, which that basically tells you what you can do (and what not) with the codes that are shared. Usually there might be some limitations for commercial use of the codes, for example.
- documentation: each repository (and possibly its subfolders) includes a file called
README.md
that by default is the front-page of the given repository in GitHub, and shows a basic documentation and how to use the software.
2.4.1 Example: Linux kernel
- Developed with Git
- about 10000 changesets in each new version (every 2 or 3 months)
- 1000+ unique contributors
2.5 Working with Git
- A excellent git guide can be found at this blog post and this web page.
- We will make a demonstration “in paper” now in classroom.
- We will practice this in classroom by making changes to a Python software in our example repository.
- First, register at Github and install Github Desktop!